import { GrantedAuthority } from '@2/typings/oauth2';

/**
 * @program: microservice-central-portal
 * @description:
 *  1. 菜单模型定义，包含主键标识、父主键标识、菜单名称、菜单权限编码、路径、VUE 组件、一级菜单跳转地址、是否缓存页面、类型、总是展示、当前激活菜单、排序、菜单打开方式、是否包含叶子节点、标签、图标等信息。
 *  2. 使用场景：菜单信息展示、菜单信息编辑等。
 * @author: baiHoo.chen
 * @create: 2024-04-07
 **/
export interface PermissionModel extends GrantedAuthority {
  /**
   * 主键标识
   */
  id: number;
  /**
   * 父主键标识
   */
  parentId: number;
  /**
   * 菜单名称
   */
  name: string;
  /**
   * 路径
   */
  path: string;
  /**
   * VUE 组件
   */
  component: string;
  /**
   * 一级菜单跳转地址
   */
  redirect: string;
  /**
   *  是否缓存页面 0:不是  1:是（默认值1）
   */
  keepAlive: number;
  /**
   * 类型（0：一级菜单；1：子菜单 ；2：按钮权限）
   */
  menuType: number;
  /**
   * 总是展示 0:不是  1:是（默认值0）
   */
  alwaysShow: number;
  /**
   * 用于菜单栏激活 标识 当前菜单里 页面
   */
  currentActiveMenu: string;
  /**
   * 排序
   */
  sort: number;
  /**
   * 菜单打开方式 0:内部打开，1:外部打开（默认内部打开）
   */
  internalOrExternal: number;
  /**
   * 是否包含叶子节点 0:不是  1:是（默认值0）
   */
  leafed: number;
  /**
   * 标签
   */
  title: string;
  /**
   * 图标
   */
  icon: string;
}
